#include<bits/stdc++.h>
using namespace std;
int n,b[500000],c[500000],t,x,j,k,ll;
struct note 
{
	int x;
	int y;
}a[500000];
bool cmp(note a,note b)
{
	return a.x<b.x||a.x==b.x&&a.y<b.y;
 } 
int main()
{
	freopen("sort.in","r",stdin);
	freopen("sort.out","w",stdout);
	cin>>n>>t;
	for (int i=1;i<=n;i++)
	{
		cin>>b[i];
		a[i].x=b[i];
		a[i].y=i;
	}
	sort(a+1,a+n+1,cmp);
	for (int i=1;i<=n;i++)
		c[a[i].y]=i;
	for (int i=1;i<=t;i++)
	{
		cin>>x;
		if (x==1)
		{
			cin>>j>>k;
			//b[j]=k;
			b[j]=k;
			for (int l=1;l<=n;l++)
				{
					a[l].x=b[l];
					a[l].y=l;
				}
			sort(a+1,a+n+1,cmp);
			for (int l=1;l<=n;l++)
				c[a[l].y]=l;
//			if (k>=b[j])
//			{
//				ll=0;
//				for (int l=1;l<=n;l++)
//				{
//					if (b[l]>=b[j]&&b[l]<=k)
//					{
//						ll++;
//						c[l]--;
//					}
//				}
//				c[j]+=ll;
//			}
//			if (k<b[j])
//			{
//				ll=0;
//				for (int l=1;l<=n;l++)
//				{
//					if (b[l]<=b[j]&&b[l]>=k)
//					{
//						ll++;
//						c[l]++;
//					}
//				}
//				c[j]-=ll;
//			}
			
//	for (int i=1;i<=n;i++)
//		cout<<c[i]<<endl;
//		cout<<endl;
		}
		if (x==2)
		{
			cin>>j;
			cout<<c[j]<<endl;
		}
	}
	return 0;
 } 
 /*
3 4
3 2 1
2 3
1 3 2
2 2
2 3
*/
